package com.zxl.study.support;
import com.zxl.study.entities.MetaDatabase;
import com.zxl.study.entities.MetaTable;


import java.sql.Connection;
import java.util.List;


public interface Strategy<T> {

    /**
     * 注册数据库驱动程序
     *
     * @param
     * @param
     * @return void
     */
    void setDriver();

    /**
     * 获取表信息
     * <p>
     * 返回根据白名单过滤后的远端表集合
     * isFilter为true时，返回根据白名单+管理表联合过滤后的远端表集合
     * </p>
     *
     * @param conn       数据库连接
     * @param database   数据库信息
     * @param isFilter   是否根据管理表过滤，true根据管理表过滤
     * @param isComplete 是否补全信息，默认为false，新增表时需要补全
     * @return java.util.List<com.sailing.dmp.meta.model.MetaTable>
     */
    List<MetaTable> syncGetRemoteTables(Connection conn, MetaDatabase database, boolean isFilter, boolean isComplete);

}